const jwt = require("jsonwebtoken");
const { PRIVATE_KEY, PUBLIC_KEY } = require("../config/secret.js");
const userServer = require("../server/userServer.js");

class LoginControll {
	// 发布token 中间件
	async sign(ctx, next) {
		// 1. 获取用户信息
		const { name, id } = ctx.user;

		try {
			// 2. 发布token
			const token = jwt.sign({ id, name }, PRIVATE_KEY, {
				expiresIn: 24 * 60 * 60, // 过期时间 一天24小时
				algorithm: "RS256",
			});
			try {
				// 把token 添加到users表
				const res = await userServer.updateTokenToUsersServer(
					token,
					id
				);
				// 3. 返回用户信息
				ctx.body = {
					code: 0,
					data: { id, token, name, message: "token填入成功~" },
				};
			} catch (error) {
				console.log(error);
			}
		} catch (error) {
			console.log(error);
		}
	}

	// 验证token是否有效
	test(ctx, next) {
		ctx.body = {
			code: 1,
			message: "验证通过",
		};
	}
}

module.exports = new LoginControll();
